package parallels.servertech.client;

import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;

import parallels.servertech.common.Receiver;
import parallels.servertech.common.Status;

public interface CommandContext {
	public PrintStream getOut();
	
	public void connect(Socket socket) throws IOException;
	
	public void disconnect() throws IOException;
	
	public Status send(String cmd, int... args) throws IOException;

	public <T> T receive(Receiver<T> receiver) throws IOException;

	public String receiveError() throws IOException;
}
